package luogu;

import java.util.Scanner;

public class Main1036 {
    static int n,k;
    static int[]arr;
    static int count = 0;//用来统计素数的个数
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        k = sc.nextInt();
        arr = new int[n];
        for (int i = 0; i < arr.length ; i++) {
            arr[i] = sc.nextInt();
        }
        backtrack(0,0,0);
        System.out.println(count);
    }
    //定义一个回溯方法写出所有组合
    private static void backtrack(int start,int sum,int cnt){
        //start是起始数  sum是已经选的数的和  cnt是已经选的数的个数
        //如果已经选了k个数，那么判断这几个数的和是否是素数
        if (cnt==k){
            if (isPrime(sum)){
                count++;
            }
        }
        //还没有选到k个数
        for (int i = start; i <arr.length; i++) {
            backtrack(i+1,sum+arr[i],cnt+1);
        }
    }
    //判断一个数是否是素数
    private static boolean isPrime(int num){
        if (num<=1){
            return false;
        }
        if (num==2){
            return true;
        }
        if (num%2==0){
            return false;
        }
        //如果是奇数，则判断是否存在小于其平方根的因数
        for (int i = 3; i * i <=num ; i+=2) {
            if (num%i==0){
                return false;
            }
        }
        return true;
    }
}
